/**
 * var 变量声明特点
 * 1.var声明的变量会进行变量提升
 *  console.log(a);var a = 10;
 *  解析为var a; console.log(a);a = 10;
 * 2.var可以重复声明变量
 *  var a = 10;var a = 20;console.log(a);//20
 * 3.不存在块级作用域

if(true){
    var a =10;
}
console.log(a);//可以访问到a的结果是10
*/

/**
 * let 声明变量的特点：
 * 1.不会进行变量声明
 *      console.log(a);
 *      let a = 10;//报错初始化之前不可以访问
 * 2.不可以重复声明变量
 *      let a =10;
 *      let a = 20;//报错
 *
 */


// if(true){
//     let a =10;
// }
// console.log(a);

/**
 * const声明变量特点
 * 
 * 1.console.log(a);
 *   const a = 10;//报错
 * 2.
 * 
 * 3.存在作用域
 *  if(true){
    const a = 10;
    }
    console.log(a);

   4.const声明变量必须初始化
        const a =10;
    var a;
    let  b;
    const c;//报错
    console.log(a,b);

   5.const一旦初始化，不可以重复赋值
        var a =10;
        a= 20;
        console.log(a);//报错
 */
